﻿using SistemaAdministracion.Models.BaseClass;
using SistemaAdministracion.Models.PatternBase;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace SistemaAdministracion.Models.CustomValidation
{
    public class CustomValidationUser : ValidationAttribute
    {
        //Clase custom para cada ves que se registre un nuevo usuario verifica si el usuario existe en nuestro sistema
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            //inicializamos el patron base
            IDbContext _context = new DbContextAdapter(ContextBase.ContextBaseInstance);
            UnitOfWork _UoW = new UnitOfWork(_context);
            IRepository<Usuario> _reposit = new BaseRepository<Usuario>(_context);
            string val = value.ToString();
            Usuario us = _reposit.SingleOrDefault(u => u.UserName == val);
            if (us != null)
            {
                //retorna si el usuario existe
                return new ValidationResult("El Usuario Ya Existe");
            }
            //retorna por defecto success
            return ValidationResult.Success;
        }
    }
}